/** Fichier implémentant une forme infinie.
 *
 * Ce fichier contient l'implémentation de la classe abstraite FormeInfinie.
 *
 * @file FormeInfinie.cpp
 * @author Johan "Solo" Luisier
 * @date 4 Juillet 2011
 */
#include "FormeInfinie.hpp"

using namespace std;

/** Constructeur standard d'une forme infinie.
 *
 * Comme une instance de FormeInfinie n'a pas d'attribut particulier, il suffit
 * d'initialiser le nom et la transformation.
 *
 * @param[in] nom nom de la forme.
 * @param[in] tr transformation géométrique permettant de passer dans les
 * coordonées locales.
 */
FormeInfinie::FormeInfinie( const string& nom,
                            const Transformation& tr )
    : Forme( nom, tr )
{}

/** Destructeur, virtuel pour assurer une séquence de destruction correcte.
 *
 * Le destructeur n'a rien de spécial à faire.
 */
FormeInfinie::~FormeInfinie()
{}

/** Méthode qui permet de savoir si un rayon a une chance d'avoir une
 * intersection avec la forme.
 *
 * Une forme infinie a très probablement une intersection et il n'est pas
 * possible de définir un volume borné délimitant la forme. On renvoie donc
 * toujours @c true.
 *
 * @return true.
 */
bool FormeInfinie::aIntersection( const Rayon& ) const
{
    return true;
}
